package com.example.designpatterns.singleton;

/**
 * 静态内部类单例模式
 * 
 * 利用类加载机制实现线程安全的延迟初始化
 */
public class StaticInnerClassSingleton {
    // 私有构造方法，防止外部实例化
    private StaticInnerClassSingleton() {
        System.out.println("静态内部类单例被初始化");
    }
    
    // 静态内部类，持有单例实例
    private static class SingletonHolder {
        // 在静态内部类被加载时创建单例实例
        private static final StaticInnerClassSingleton INSTANCE = new StaticInnerClassSingleton();
    }
    
    // 提供全局访问点
    public static StaticInnerClassSingleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
    
    // 业务方法
    public void doSomething() {
        System.out.println("静态内部类单例执行业务方法");
    }
} 